Given a coupled DEVS model, simulation algorithms are methods to generate the model's legal behaviors, which are a set of trajectories not to reach illegal states. (see behavior of a Coupled DEVS model.) [Zeigler84] originally introduced the algorithms that handle time variables related to lifespan and elapsed time by introducing two other time variables, last event time, , and next event time with the following relations:
and
where denotes the current time. And the remaining time,
is equivalently computed as
, apparently .
Based on these relationships, the algorithms to simulate the behavior of a given Coupled DEVS are written as follows.
DEVS-coordinator Variables: parent // parent coordinator : // time of last event : // time of next event // the associated Coupled DEVS model when receive init-message(Time t) for each do send init-message(t) to child ; ; when receive star-message(Time t) if then error: bad synchronization; send star-message(t)to ; ; when receive x-message(, Time t) if and == false then error: bad synchronization; for each do send x-message(,t) to child ; ; when receive y-message(, Time t) for each do send x-message(,t) to child if then send y-message(, t) to parent; ; ;